Control Flow Integrity Enforcement with Dynamic Code Optimization
نویسندگان
چکیده
Control Flow Integrity (CFI) is an attractive security property with which most injected and code reuse attacks can be defeated, including advanced attacking techniques like Return-Oriented Programming (ROP). However, comprehensive enforcement of CFI is expensive due to additional supports needed (e.g., compiler support and presence of relocation or debug information) and performance overhead. Recent research has been trying to strike the balance among reasonable approximation of the CFI properties, minimal additional supports needed, and acceptable performance. We investigate existing dynamic code optimization techniques and find that they provide an architecture on which CFI can be enforced effectively and efficiently. In this paper, we propose and implement DynCFI that enforces security policies on a well established dynamic optimizer and show that it provides comparable CFI properties with existing CFI implementations while lowering the overall performance overhead from 28.6% to 14.8%. We further perform comprehensive evaluations and shed light on the exact amount of savings contributed by the various components of the dynamic optimizer including basic block cache, trace cache, branch prediction, and indirect branch lookup.
منابع مشابه
Runtime Integrity Measurement and Enforcement with Automated Whitelist Generation
This poster discusses a strategy for automatic whitelist generation and enforcement using techniques from information flow control and trusted computing. During a measurement phase, a cloud provider uses dynamic taint tracking to generate a whitelist of executed code and associated file hashes generated by an integrity measurement system. Then, at runtime, it can again use dynamic taint trackin...
متن کاملAFRL-OSR-VA-TR-2015-0149 Information Flow Integrity for Systems of Independently-Developed Components
The aim of this project is to enable enforcement of integrity safe in systems of independently-developed components. In this project, we explore this problem from three perspectives. First, we developed integrity safety properties and mechanisms to enforce them. In particular, we developed resource retrieval (access) integrity, which protects programs when retrieving system resources, and imple...
متن کاملStitching the Gadgets: On the Ineffectiveness of Coarse-Grained Control-Flow Integrity Protection
Return-oriented programming (ROP) offers a robust attack technique that has, not surprisingly, been extensively used to exploit bugs in modern software programs (e.g., web browsers and PDF readers). ROP attacks require no code injection, and have already been shown to be powerful enough to bypass fine-grained memory randomization (ASLR) defenses. To counter this ingenious attack strategy, sever...
متن کاملSecure Optimization of Inlined Reference Monitors
Inlined Reference Monitor (IRM) is the preferred enforcement mechanism for historybased access control policies. IRM enforcement injects monitoring code into the binary of an untrusted program in order to track its execution history. The injected code denies access when execution deviates from the policy. The viability of IRM enforcement is predicated on the ability of the binary rewriting elem...
متن کاملPrescriptive Safety-Checks through Automated Proofs for Control-Flow Integrity
Embedded software today is pervasive: they can be found everywhere, from coffee makers and medical devices, to cars and aircraft. Embedded software today is also open and connected to the Internet, exposing them to external attacks that can cause its Control-Flow Integrity (CFI) to be violated. Control-Flow Integrity is an important safety property of software, which ensures that the behavior o...
متن کامل